<?php
/* 
* @Author: Jerry-chen
* @Date:   2014-07-08 12:17:52
* @Last Modified time: 2014-07-23 18:16:30
* @Last Modified by: Jerry-chen<uranusbill@163.com>
* @ Copyright (c) 2014 http://www.cooldreamer.com All rightsreserved.
*/

class GoodsControl extends CommonControl
{
	
	public function index()
	{
		// 查出所有的商品信息
		$goodsData = K('Goods')->get_all(null,'goodsid desc');
		// p($goodsData);die;
		//分配商品数据
		// echo "string";
		$this->assign('goodsData',$goodsData);
		// 根据类型ID查出商品类型
		if(is_array($goodsData)){
			$goodsData = current($goodsData);
		}
		
		$cateid = $goodsData['cateid'];
		//得到分类名
		$cateData = K('category')->get_one(array('cateid'=>$cateid),'catename');
		//分配
		$this->assign('catename',$cateData['catename']);

		$this->display();
	}
	/**
	 * [goods 添加商品]
	 * @return [type] [description]
	 */
	public function add_goods()
	{
		//查出所有的影院，好选择票所属影院
		$cinemaData = k('Cinema')->get_all();
		//分配影院数据
		$this->assign('cinemaData',$cinemaData);
		//查出所有分类
		$categoryDate = K('Category')->get_all();
		//目录树
		$categoryDate = Data::tree($categoryDate,'catename','cateid');
				// p($categoryDate);die;
		//分配影院数据
		$this->assign('categoryDate',$categoryDate);
		// p($typeData);die;
		if(IS_POST)
		{
			// p($_POST);die;
			
			// P(Q('post.'));die;
//*****************商品数据(goods)*********************************************************************************
			// 商品数据
			
			$goodsData = array(
				//商品名称
				'goodsname'=>Q('post.goodsname'),
				//分类ID
				'cateid'=>Q('post.cateid'),
				//影院ID
				'backintegral'=>Q('post.cinemaid'),
				//发布管理员ID
				'aid'=>$_SESSION['aid'],
				'is_seat'=>Q('post.is_seat'),
				// 商品货号
				'articlenumber'=>Q('post.articlenumber'),
				//开始时间
				'startime'=>Q('post.startime'),
				//结束时间
				'overtime'=>Q('post.overtime'),
				//上架时间
				'ontime'=>Q('post.ontime'),
				//副标题
				'title'=>Q('post.title'),
				// 所属影院
				'cinemaid'=>Q('post.cinemaid'),
				//所属播放地
				'seatid'=>Q('post.seatid'),


				);
			// p($goodsData);
			// 插入商品信息
			$goodsid = K('Goods')->add_($goodsData);
			if(!$goodsid)
			{
				$this->error('商品信息添加错误','index');
			}
			// if(!$goodsid) $this->error(K('Goods')->error,U('add_goods'));
//****************商品详细(goodsdes)***************************************************************************************
			//得出图片信息
			$upload = Q('post.upload','','');
			if(is_array($upload)){
				$goodsimg = current($upload);
				$goodsimg=$goodsimg['path'];	
			}else{
				$goodsimg='';
			}
			
			// p($goodsimg);
			//商品详细数据
			$goodsdesData = array(
				//详细描述
				'goodsdes'=>Q('post.introduce'),
				//商品购买说明
				'goodsexplain'=>Q('post.illustrate'),
				//付款方式
				'howpay'=>Q('post.howpay'),
				'goodsimage'=>$goodsimg,
				'goodsid'=>$goodsid,
				

				);
			// p($goodsdesData);
			$goodsdesid = K('goodsdes')->add_($goodsdesData);
			// P($goodsdesid);
			// p($_POST);
			// die;
			if(!$goodsdesid)
			{
				$this->error('商品详细信息添加错误','index');
			}
//****************商品属性(商品属性)***********************************************************************************
			//对类型值进行判断，如果不是数组，直接为''，如果是数组，取出数组时面的值
			if(is_array($_POST['attrvalue']))
			{
				$attrvalue = $_POST['attrvalue'][0];
			}else
			{
				$attrvalue = '';
			}
			//对支持的属性进行处理， 如支持网银支付，电子票，等
			
			if(is_array($_POST['support']))
			{
				//转成字符，再插入数据
				$support = implode(',', $_POST['support']);
			}
			else
			{
				$support = 0;
			}

			$goodsattrData = array(
				'goodsid'=>$goodsid,
				// 城市
				'city'=>Q('post.city'),	
				'support'=>$support,
				'goods_attrvalue'=>$attrvalue


				);
			$goodsattrid = K('goodsattr')->add_($goodsattrData);
			// p($goodsattrData);
			if(!$goodsattrid)
			{
				$this->error('商品属性添加错误','index');
			}
//****************座位和价格处理(处理价格，时间，座位)***********************************************
			//判断是否支持选座，分别对数据进行处理
			$is_seat = Q('post.is_seat');
			// 不支持选座时的价格和时间处理
			if($is_seat==0)
			{
			// 取出相应的价格，价格别名，时间
			// 	定义一个空数组
//****************数组处理***********************************************
				// $temp =array();
				// //组合数据
				// foreach ($_POST['price0'] as $k => $v) {
				// 	$temp[$k][] = $v;
				// 	$temp[$k][] = $_POST['pricenamme0'][$k];
				// 	$temp[$k][] = $_POST['timename0'][$k];
				// 	$temp[$k][] = $_POST['time0'][$k];
					
				// }			
//****************数组处理***********************************************
//				//数组重组
//				
//				
//				对时间价格的处理，如果有MORE_PRICE这个字段 ，那就是价格集，要插分，再插入
				$tempData = array();
				foreach ($_POST['timename0'] as $ktime => $vtime) 
				{
					//把要插入的数据先组合
					$tempData[$ktime]['timename'] = $vtime;
					$tempData[$ktime]['time'] = $_POST['time0'][$ktime];
					$tempData[$ktime]['countticket']= explode("|",$_POST['countticket'][$ktime]);
					$tempData[$ktime]['price']=$_POST['price0'][$ktime];
					//字符截取
					$tempData[$ktime]['price']=explode("|", $tempData[$ktime]['price']);
					//插入数据
					// p($tempData);
					// P($tempData[$ktime]['pricename'][0]);
					//组合时间数据
					$timeData = array(
						'timename'=>$tempData[$ktime]['timename'],
						'time'=>$tempData[$ktime]['time'],
						'goodsid'=>$goodsid,
						);
					//插入时间数据
					$goodstimeid = K('Goodstime')->add_($timeData);
					//组合价格数据
					//循环插入价格数据
				 foreach ($tempData[$ktime]['price'] as $key => $value) {
				 		$priceData = array(
						'countticket'=>$tempData[$ktime]['countticket'][$key],
						'price'=>$value,
						'goodstimeid'=>$goodstimeid,
						);
				 		//插入价格数据
				 		// p($priceData);
					$goodsprice = K('Goodsprice')->add_($priceData);
				 	}	
					// p($_POST);
					// p($priceData);
					// die;
				}	
			}
			//支持选座时的价格和时间处理
			if($is_seat==1)
			{
				// 数据组合
				//暂时只对一个时间，多个座位，进行处理
					//插入数据
					// p($tempData);echo ">>>>>>>>>>>>>>>>";
					//组合时间数据
					$timeData = array(
						'time'=>Q('post.time1'),
						'goodsid'=>$goodsid,
						);
					//插入时间数据
					$goodstimeid = K('Goodstime')->add_($timeData);
					//组合价格数据
					foreach ($_POST['price1'] as $k => $v) {
						$priceData = array(
						'price'=>$v,
						'goodstimeid'=>$goodstimeid,
						);

						//插入价格数据
					$goodspriceid = K('Goodsprice')->add_($priceData);
					}

			}
			// p($_POST);die;
			$this->success('商品添加成功','index');
		}
		// p(Q('post.'));
		// die;
		$this->display('add.html');
}
	/**
	 * [del 删除商品]
	 * @return [type] [description]
	 */
	public function del()
	{
		$goodsid = Q('get.goodsid');
		// P($goodsid);die;
		//删除商品表中商品属性信息
		$result = K('Goodsattr')->del_(array('goodsid'=>$goodsid));
		if(!$result)
		{
			$this->error('商品属性删除失败','index');
		 }else{
		 	//删除商品详细
			$result=K('Goodsdes')->del_(array('goodsid'=>$goodsid));
		 }
		 if(!$result)
		{
			$this->error('商品详细失败','index');
		 }else{
		 	//先删除商品表中的相关价格<先要找出时间ID，再删除商品价格>
			$goodstimeid = K('Goodstime')->get_all(array('goodsid'=>$goodsid),'timeid');
			//删除商品的价格
			$result=K('Goodsprice')->del_(array('goodstimeid'=>$goodstimeid));
		 }		
			//删除商品相关的时间信息
			K('Goodstime')->del_(array('goodsid'=>$goodsid));
			//再删除商品表
			$result = K('Goods')->del_(array('goodsid'=>$goodsid));
			if(!$result)
			{
			$this->error('商品删除失败','index');
			 }else{
			$this->success('商品删除成功','index');
			 }
		
	}
	/**
	 * [edit 编辑]
	 * @return [type] [description]
	 */
	public function edit()
	{
//====================原始的数据=========================
		$goodsid=Q('get.goodsid');
		// /查出所有的影院，好选择票所属影院
		$cinemaData = k('Cinema')->get_all();
		//分配影院数据
		$this->assign('cinemaData',$cinemaData);
		//查出所有分类
		$categoryDate = K('Category')->get_all();
		//目录树
		$categoryDate = Data::tree($categoryDate,'catename','cateid');
				// p($categoryDate);die;
		//分配影院数据
		$this->assign('categoryDate',$categoryDate);
		// p($typeData);die;
		// p($goodsid)
//====================与ID相配的的数据=========================
		//查出商品的相关信息
		$goodsData = K('Goods')->get_one(array('goodsid'=>$goodsid));
		// p($goodsData);die;
		//分配数据
		$this->assign('goodsData',$goodsData);
		// 商品相关信息
		$goodsdesData = K('Goodsdes')->get_one(array('goodsid'=>$goodsid));
		// p($goodsdesData);die;
		//分配数据
		$this->assign('goodsdesData',$goodsdesData);
		//图片数组重组
		$imagedata = array(
					 0 =>array(
					 		'path'=>$goodsdesData['goodsimage'],
					 	)
					);
		//分配数据
		$this->assign('imagedata',$imagedata);
		//所在的影院
		$oldcinemaData = K('Cinema')->get_one(array('cinemaid'=>$goodsData['cinemaid']));
		// 分配数据
		$this->assign('oldcinemaData',$oldcinemaData);
		//所在的播放地
		$oldseatData = K('Seat')->get_one(array('cinemaid'=>$goodsData['cinemaid']));
		// p($oldseatData);die;
		// 分配数据
		$this->assign('oldseatData',$oldseatData);
		//查出时间--时间价格--库存票务信息
		$oldGoodstimedata = K('Goodstime')->get_all(array('goodsid'=>$goodsid));
		//循环重组数组
		// p($oldGoodstimedata);
		foreach ($oldGoodstimedata as $kt => $vt) {
			
			$prices = K('Goodsprice')->get_all(array('goodstimeid'=>$vt['timeid']));
			foreach ($prices as $kp => $vp) {
				$goodsprice = '';
				$countticket='';
				$prices['goodsprice'][] =$vp['goodsprice'];
				// 将数组，组合成字符
				foreach ($prices['goodsprice'] as $kstr => $vstr) {
					$goodsprice .=$vstr.'|';
				}
				// 将数组，组合成字符
				$prices['countticket'][]=$vp['countticket'];
				foreach ($prices['countticket'] as $kkstr => $vkstr) {
					$countticket.= $vstr.'|';
				}
			}
			//将得到的数据压入到GOODSTIME数组，方便数据调用
			$oldGoodstimedata[$kt]['goodsprice']=$goodsprice;
			$oldGoodstimedata[$kt]['countticket']=$countticket;
			// p($goodsprice);
		}
		// p($oldGoodstimedata);
		// 分配数据
		$this->assign('oldGoodstimedata',$oldGoodstimedata);
		// die;
		$this->display();
	}
	/**
	 * [ajax_select_cate 通过分类，获得属性值，规格值，支持值]
	 * @return [type] [description]
	 */
	public function ajax_select_cate()
	{
		// 根据CATEID查出TYPEID
		if(IS_AJAX)
		{
			// echo Q('post.cateid');die;
			$cateid = Q('post.cateid');
			$pid = K('Category')->get_one(array('cateid'=>$cateid),array('pid'));
			// p($pid);die;
			//如果是顶部就直接输出0《顶部不支持发布商品》
			if($pid['pid']==0){
				echo 0;die;
			}else{
				// 通过PID查出父级ID
				$typeid = K('Category')->get_one(array('cateid'=>$pid['pid']),array('catetypeid'));
				//得到类型的ID
					$typeid = $typeid['catetypeid'];
					//查出TYPE名
					$attrData = K('Attr')->get_all(array('typeid'=>$typeid));
					foreach ($attrData as $k => $v) {
						//全角转半角
						$v['attrvalue'] = String::toSemiangle($v['attrvalue']);
						$attrData[$k]['attrvalue']=explode(',', $v['attrvalue']);
					}
					

					if($attrData)
					{
					//输出json格式
					echo json_encode($attrData);die;
					}
					 else
				 	{
					echo 0;
					}
				
			}
			

		}
	}
	/**
	 * [ajax_select_seat 根据影院异步查出所有的座位名称如：3D播放室，也就是座位所在地]
	 * @return [type] [description]
	 */
	public function ajax_select_seat()
	{
		if(IS_AJAX)
		{
			//得到影院的ID
			$cinemaid = Q('post.cinemaid');
			$cinemaData = K('Seat')->get_all_(array('cinemaid'=>$cinemaid));
			
			// p($cinemaData);die;
			if($cinemaData)
			{
			//输出json格式
			echo json_encode($cinemaData);die;
			}
			 else
		 	{
			echo 0;die;
			}
		}
	}
	/**
	 * [ajax_select_seatsort 根据影院ID异步查出所有的座位:如1排1号]
	 * @return [type] [description]
	 */
	public function ajax_select_seatsort()
	{
		//得到座位名称的ID
		$seatid = Q('post.seatid');
		$seatdata = K('Seat')->get_all_(array('seatid'=>$seatid));
		// p($cinemaData);die;
			foreach ($seatdata as $k => $v) {
				//全角转半角
				$v['seatsort'] = String::toSemiangle($v['seatsort']);
				// 数据重组，方便JS组合JASON
				$seatdata=explode(',', $v['seatsort']);	
			}
			// p($seatdata);die;
		 if($seatdata)
			{
			//输出json格式
			echo json_encode($seatdata);die;
			}
			 else
		 	{
			echo 0;die;
			}

	}
	/**
	 * [ajax_language 商品货号处理]
	 * @return [type] [商品货号处理]
	 */
	public function ajax_language()
	{
		if(IS_AJAX)
		{
			// echo Q('post.cateid');die;
			$cateid = Q('post.cateid');
			$cateData = K('Category')->get_one(array('cateid'=>$cateid));
			//如果为顶级分类，不让发布商品
			if($cateData['pid']==0){
				echo 2;die;
			}
			// 获得分类名
			$catename = $cateData['catename'];
			//转成拼音
			$catename = string::pinyin($catename );
			if($catename)
			{
			//输出json格式
			echo json_encode($catename);die;
			}
			 else
		 	{
			echo 0;die;
			}

			}
	}
	/**
	 * [ajax_countticket 对价格和票数是否相等进行判断]
	 * @return [type] [description]
	 */
	public function ajax_countticket()
	{
		if(IS_AJAX)
		{
			// P(Q('post.'));
			// 获得AJAX传过来的数据，然后把数据插分成数组，
			$pricedata = explode("|", Q('post.pricedata'));
			$ticketdata = explode("|", Q('post.ticketdata'));
			//进行循环
			foreach ($pricedata as $k1 => $v1) {
				$price = $k1;
			}
			foreach ($ticketdata as $k2 => $v2) {
				$ticket = $k2;
			}
			//对它循后的键名比对，如果，相等，那就说明它位位数一样，如果不相等说明位数不一样
			if($price == $ticket)
			{
				echo 1; die;
			}else{
				echo 0;die;
			}
		}
		
	}

}

